import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)

// 定义并暴露一个Store实例对象
export default new Vuex.Store({
    // actions中配置的是一个一个可以响应组件中“动作”的方法 —— 服务员
    actions:{
        // 响应奇数加动作
        jiaIfOdd(miniStore,value){
            if(miniStore.state.sum % 2){
                miniStore.commit('ADD',value)
            }
        },
        // 响应等一等再加动作
        jiaWait(miniStore,value){
            setTimeout(()=>{
                miniStore.commit('ADD',value)
            },1000)
        },
        // 
        async jiaServer(miniStore){
            let result = await axios.get('https://api.uixsj.cn/hitokoto/get?type=social')
            console.log(result.data)
            miniStore.commit('ADD',result.data.length)
        }
    },
    // mutations中配置的是一个一个可以“加工”数据的方法 —— 厨师
    mutations:{
        ADD(state,value){
            console.log('我是mutations中的ADD（厨师）')
            state.sum += value
        },
        SUB(state,value){
            console.log('我是mutations中的SUB（厨师）')
            state.sum -= value
        }
    },
    // state中用于保存需要共享的数据（菜品）
    state:{
        sum:0,
        subject:'前端',
        school:'尚硅谷'
    }
})